/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package callProcs;

import bufete.BufeteView;
import java.math.BigInteger;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import serverconf.LeerArchivodeConexion;

/**
 *
 * @author Juls
 */
public class ProcsInsertar {
    java.sql.Connection  con = null;
    LeerArchivodeConexion leer;
    String server=null;
    String bd=null;
    String user=null;
    String pass=null;
    public ProcsInsertar(){
        try {

//            con = DriverManager.getConnection("jdbc:mysql://localhost/bufete","root","socrates");
            leer = new LeerArchivodeConexion();
            leer.LeerArchivo();
            server = leer.VerServidor();
            bd = leer.VerBd();
            user = leer.VerUsuario();
            pass = leer.VerContraseña();
            con = DriverManager.getConnection("jdbc:mysql://localhost/bufete","root","1234");

//            con = DriverManager.getConnection("jdbc:mysql://"+server+"/"+bd,user,pass);



        } catch (SQLException ex) {
            Logger.getLogger(ProcsInsertar.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void insertarAsesor(String nombre, String apellido,String TelAsesor,String emailAsesor,boolean activo){
       // java.sql.Connection  con = null;
        try {
            //con = DriverManager.getConnection("jdbc:mysql://localhost/bufete","root","");
            String bandera=null;
            if (activo) bandera = "true";
            if (!activo) bandera = "false";
            java.sql.CallableStatement cs = con.prepareCall("{call InsertarAsesor('"+nombre+"','"+apellido+"','"+TelAsesor+"','"+emailAsesor+"',"+bandera+")}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
            
        } catch (SQLException ex) {
            Logger.getLogger(BufeteView.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
    
     public void insertarCliente(String nombre, String apellido,String FechaNac,boolean estadoCivil,boolean sabeFirmar,int NoOrden,String NoRegistro,BigInteger dpi, String Usuario){
        //java.sql.Connection  con;
        try {
            String banderaEC=null;
            String banderaSF = null;
            if (estadoCivil) banderaEC = "true";
            if (!estadoCivil) banderaEC = "false";
            if (sabeFirmar) banderaSF = "true";
            if (!sabeFirmar) banderaSF = "false";
            java.sql.CallableStatement cs = con.prepareCall("{call InsertarCliente('"+nombre+"','"+apellido+"','"+FechaNac+"',"+banderaEC+","+banderaSF+","+NoOrden+",'"+NoRegistro+"',"+dpi+",'" + Usuario +"')}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
            
        } catch (SQLException ex) {
            Logger.getLogger(BufeteView.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
     
          public void insertaralumno(int carne, String nombre, String apellido,Date FechaNac,boolean estadoCivil,int NoOrden,String NoRegistro,BigInteger dpi,  int direccion){
        //java.sql.Connection  con;
        try {
            String banderaEC=null;
            String fechaNac = null;
            if (estadoCivil) banderaEC = "true";
            if (!estadoCivil) banderaEC = "false";
            fechaNac = String.valueOf(FechaNac);
            java.sql.CallableStatement cs = con.prepareCall("{call InsertarEstudiante(" + carne + "," + "'" + nombre +"'," + "'" + apellido +"',"  +FechaNac + ", " + "'" + banderaEC +"'," + "'"+ NoOrden +"',"+ NoRegistro+ "," + dpi+"," + "NULL" + ","+ direccion + ")}" );
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
            
        } catch (SQLException ex) {
            Logger.getLogger(BufeteView.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
          
          
     
       public void insertarDireccionEst(String Direccion,int zona ,int idMunicipio){
        
        try {
            //con = DriverManager.getConnection("jdbc:mysql://localhost/bufete","root","");
            java.sql.CallableStatement cs = con.prepareCall("{call InsertarDireccionEstudiante('"+Direccion+"',"+zona+","+idMunicipio+")}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
            
        } catch (SQLException ex) {
            Logger.getLogger(BufeteView.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

       public void Cancelar_caso(String id)
       {
           java.sql.CallableStatement cs;
        try {
            cs = con.prepareCall("{call CancelaCaso(" + id +  " )}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
            JOptionPane.showMessageDialog(null, "El caso " + id + " ha sido cancelado");
        } catch (SQLException ex) {
            Logger.getLogger(ProcsInsertar.class.getName()).log(Level.SEVERE, null, ex);
        }
            
       }
       
       public boolean estado_caso(String id) throws SQLException
       {
           java.sql.ResultSet rs = null;
           Statement cs = con.createStatement();
           rs = cs.executeQuery("select cancelado from caso where idCaso = " + id);
           boolean estado = false;
           while (rs.next())
           {
               
               if(rs.getString("cancelado").equals("1")) {
                   estado =  true;
               }
               else{
                   estado = false ;
               }
           }
           return estado;
       }
       
       public void ingresoSeg(String idcaso, String fecha, String contenido)
       {
         try {
            //con = DriverManager.getConnection("jdbc:mysql://localhost/bufete","root","");
            java.sql.CallableStatement cs = con.prepareCall("{call InsertarSeguimiento("+idcaso+",'"+fecha+"','"+contenido+"')}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
            
        } catch (SQLException ex) {
            Logger.getLogger(BufeteView.class.getName()).log(Level.SEVERE, null, ex);
        }
   
       }        
       
       
       
       public void insertarDireccionCliente(String Direccion,int zona ,int idMunicipio){
        
        try {
            //con = DriverManager.getConnection("jdbc:mysql://localhost/bufete","root","");
            java.sql.CallableStatement cs = con.prepareCall("{call InsertarDireccionCliente('"+Direccion+"',"+String.valueOf(zona)+","+String.valueOf(idMunicipio)+")}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
            
        } catch (SQLException ex) {
            Logger.getLogger(BufeteView.class.getName()).log(Level.SEVERE, null, ex);
        }

    } 
       
       public java.sql.ResultSet alerta() throws SQLException
       {
           java.sql.ResultSet rs = null;
           Statement cs = con.createStatement();
           rs = cs.executeQuery("{call crear_temporal()}");
            rs = cs.executeQuery("select count(t.caso) from temp as t inner join caso as c on c.idCaso = t.caso;");
           
           return rs;
       }
       
       public java.sql.ResultSet ver_alerta() throws SQLException
       {
           java.sql.ResultSet rs = null;
           Statement cs = con.createStatement();
           rs = cs.executeQuery("{call crear_temporal()}");
           rs = cs.executeQuery("select t.caso, t.Fecha, c.No_folio, concat(e.Nombre_estudiante, ' ', e.Apellido_estudiante) as Estudiante, concat(cl.Nombre_cliente, ' ', cl.Apellido_cliente) as Cliente from temp as t inner join caso as c on c.idCaso = t.caso inner join cliente as cl on cl.idCliente = c.Cliente_idCliente inner join estudiante as e on e.NoCarne = c.Estudiante_NoCarne;");
           
           return rs;
       }
       
       public java.sql.ResultSet ver_seguimiento(String id) throws SQLException
       {
           java.sql.ResultSet rs = null;
           Statement cs = con.createStatement();
           rs = cs.executeQuery("select comentario, Fecha_creado, Caso_idCaso from seguimiento where Caso_idCaso = " + id);
           return rs;
       }
       
     public java.sql.ResultSet verDepartementos() throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT Nombre_departamento FROM departamento");
           
            
        return rs;
     }
     
     public  java.sql.ResultSet obtenerIdDepartamento(String Departamento) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT idDepartamento FROM departamento where Nombre_departamento ='"+Departamento+"'");
          //  System.out.println(Integer.parseInt(rs.toString()));
            return rs;
     }
     
     public java.sql.ResultSet verMunicipios(int idDepartamento) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT Nombre_municipio FROM municipio where Departamento_idDepartamento ="+String.valueOf(idDepartamento));
            return rs;
     }
     
     public java.sql.ResultSet obtenerIdMunicipio(String municipio , int IdDepartament) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT idMunicipio FROM municipio where Nombre_municipio ='"+municipio+"' and Departamento_idDepartamento ="+String.valueOf(IdDepartament));
          //  System.out.println(Integer.parseInt(rs.toString()));
            return rs;
     }
     
     public void insertarTelefonoCliente(String Telefono,int tipo){
        //java.sql.Connection  con;
        try {
            java.sql.CallableStatement cs = con.prepareCall("{call InsertarTelefonoCliente('"+Telefono+"',"+String.valueOf(tipo)+")}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
            
        } catch (SQLException ex) {
            Logger.getLogger(BufeteView.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
    
     public java.sql.ResultSet verdatosCliente(String sentencia) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT idCliente,concat(Nombre_cliente,' ',Apellido_cliente) as nombre ,No_registro_cliente,No_orden_cliente,Dpi_cliente,d.Direccion_cliente,d.zona,t.Telefono"
                    + " FROM cliente c inner join direccion_cliente d on c.Direccion_cliente_idDireccion_cliente = d.idDireccion_cliente inner join telefonocliente t on t.Cliente_idCliente = c.idCliente where  concat(Nombre_cliente,' ',Apellido_cliente) = '"+sentencia+"'");
           
            
        return rs;
     }
     
     public java.sql.ResultSet verdatosCliente2(String sentencia) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT idCliente,concat(Nombre_cliente,' ',Apellido_cliente) as nombre ,No_registro_cliente,No_orden_cliente,Dpi_cliente,d.Direccion_cliente,d.zona,t.Telefono"
                    + " FROM cliente c inner join direccion_cliente d on c.Direccion_cliente_idDireccion_cliente = d.idDireccion_cliente inner join telefonocliente t on t.Cliente_idCliente = c.idCliente where concat(Nombre_cliente,' ',Apellido_cliente) = '"+sentencia+"'");
           
            
        return rs;
     }
     
     public java.sql.ResultSet verDatosCaso(String sentencia) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT ca.Estudiante_NoCarne,a.NombreAsunto,t.NombreTipo,concat(c.Nombre_cliente,' ',c.Apellido_cliente) as nombre, c.No_orden_cliente,c.No_registro_cliente,c.Dpi_cliente,"
                                +" ca.Memorial,ca.Fecha_inicio,ca.Fecha_fenecido,ca.Descripcion_caso,ca.No_folio,ca.Fecha_fenecido,ca.Observaciones,d.Direccion_cliente FROM caso ca"
                                +" inner join cliente c on c.idCliente=ca.Cliente_idCliente"
                                +" inner join asunto a on a.idAsunto=ca.Asunto_idAsunto"
                                +" inner join tipo t on t.idTipo=ca.Tipo_idTipo"
                                +" inner join direccion_cliente d on d.idDireccion_cliente=c.Direccion_cliente_idDireccion_cliente"
                                +" where ca.idCaso = "+sentencia);
           
     
        return rs;
     }
     
          public java.sql.ResultSet verDatosResCaso(String sentencia) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT l.idCaso,l.No_folio,concat(c.Nombre_cliente,' ',c.Apellido_cliente) as nom, t.NombreTipo,a.NombreAsunto,l.Estudiante_NoCarne" 
                                +" FROM caso l "+
                                " inner join cliente c on l.Cliente_idCliente=c.idCliente "+
                                " inner join asunto a on l.Asunto_idAsunto=a.idAsunto " +
                                " inner join tipo t on l.Tipo_idTipo=t.idTipo  where l.No_folio = "+sentencia);
           
     
        return rs;
     }
          
          public java.sql.ResultSet verDatosResCaso2(String sentencia) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT l.idCaso,l.No_folio,concat(c.Nombre_cliente,' ',c.Apellido_cliente) as nom, t.NombreTipo,a.NombreAsunto,l.Estudiante_NoCarne" 
                                +" FROM caso l "+
                                " inner join cliente c on l.Cliente_idCliente=c.idCliente "+
                                " inner join asunto a on l.Asunto_idAsunto=a.idAsunto " +
                                " inner join tipo t on l.Tipo_idTipo=t.idTipo  where concat(c.Nombre_cliente,' ',c.Apellido_cliente) like '%"+sentencia+"%'");
           
     
        return rs;
     }
      
          public java.sql.ResultSet verDatosResCaso3(String sentencia) throws SQLException{
              java.sql.ResultSet rs = null;
              Statement cs = con.createStatement();
              rs = cs.executeQuery("SELECT l.idCaso,l.No_folio,concat(c.Nombre_cliente,' ',c.Apellido_cliente) as nom, t.NombreTipo,a.NombreAsunto,l.Estudiante_NoCarne" 
                                +" FROM caso l "+
                                " inner join cliente c on l.Cliente_idCliente=c.idCliente "+
                                " inner join asunto a on l.Asunto_idAsunto=a.idAsunto " +
                                " inner join tipo t on l.Tipo_idTipo=t.idTipo  where l.Estudiante_NoCarne =" + sentencia);
              return rs;
          }
          
    public java.sql.ResultSet verdatosAlumnos(int sentencia) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT Nombre_estudiante,Apellido_estudiante,Fecha_nac_estudiante,"
                    + "Estado_civil_estudiante,NoReg_estudiante,NoOrden_estudiante,Dpi_estudiante,"
                    + "Asesor_idAsesor,Direccion_estudiante_idDireccion_estudiante"
                    + " FROM estudiante where NoCarne ="+String.valueOf(sentencia));
           
            
        return rs;
     }
    
     public java.sql.ResultSet VerAsuntosCaso() throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT idAsunto,NombreAsunto from asunto");
          //  System.out.println(Integer.parseInt(rs.toString()));
            return rs;
     }
    
    public void updtAsesordeAlumno(int carne, int idasesor) throws SQLException{
        try {
            //con = DriverManager.getConnection("jdbc:mysql://localhost/bufete","root","");
           String bandera=null;
           // if (estado) bandera = "true";
            //if (!estado) bandera = "false";
              //java.sql.CallableStatement cs = con.prepareCall("{call Actualiza_estudiante("+carne+"'"+nombre+"','"+apellido+"','"+fecha+"',"+bandera+",'"+reg+"',"+orden+","+dpi+","+idasesor+""+iddir+")}");
            java.sql.CallableStatement cs = con.prepareCall("{call Actualiza_asesor_estudiante("+carne+","+idasesor+")}");
           java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
            
        } catch (SQLException ex) {
            Logger.getLogger(BufeteView.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void insertarNuevoCaso(String idasunto,String idtipo,String idcliente, String descripcion,String fechainicio,String nofolio,String observaciones, String usuario){
        //java.sql.Connection  con;
        try {
            java.sql.CallableStatement cs = con.prepareCall("{call InsertarCaso("+idasunto+","+idtipo+","+idcliente+",'"+descripcion+"','"+fechainicio+"',"+nofolio+",'"+observaciones+"','"+usuario+"')}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
            
        } catch (SQLException ex) {
            Logger.getLogger(BufeteView.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    public java.sql.ResultSet verAlumnos(String sentencia) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT NoCarne FROM estudiante where NoCarne like '"+ sentencia+"%'");
           
            
        return rs;
     }  
    public java.sql.ResultSet verAlumnos0(String sentencia) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT NoCarne  FROM estudiante where NoCarne like '"+ sentencia+"%'");
           
            
        return rs;
     }
     public java.sql.ResultSet verAlumnosX(String sentencia) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT NoCarne,Nombre_estudiante,Apellido_estudiante,email_estudiante  FROM estudiante where NoCarne like '"+ sentencia+"%'");
           
            
        return rs;
     }
    
     public java.sql.ResultSet veracesor(String sentencia) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT idAsesor,Nombre_asesor,Apellido_asesor  FROM asesor where Nombre_asesor like '"+ sentencia+"%'");
           
            
        return rs;
     }
    public void editarCaso(String idcaso, String idasunto, String idtipo, String descripcion , String fechafin, String memorial, String nofolio, String observaciones, String Usuario ){
        try {
            java.sql.CallableStatement cs = con.prepareCall("{call Actualiza_caso("+idcaso+","+idasunto+","+idtipo+",'"+descripcion+"',"+fechafin+","+memorial+","+nofolio+",'"+observaciones+"','"+observaciones+"')}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
            
        } catch (SQLException ex) {
            Logger.getLogger(BufeteView.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
     public java.sql.ResultSet VerdatosCliente(String sentencia) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT concat(Nombre_cliente,' ', Apellido_cliente) AS 'Nombre' ,concat(No_registro_cliente,' ' ,No_orden_cliente) AS 'No. Cedula' ,"+
                                 "Telefono, concat(dir.Direccion_cliente, ' Zona  ', dir.zona, ' ',muni.Nombre_municipio, ',', depto.Nombre_departamento) AS 'Direccion' , "+
                                 " c.idCliente , c.Dpi_cliente FROM Cliente c "+
                                 "INNER JOIN telefonocliente tel ON tel.Cliente_idCliente = c.idCliente  "+
                                 "INNER JOIN direccion_cliente dir ON dir.idDireccion_cliente = c.Direccion_cliente_idDireccion_cliente  "+
                                 "INNER JOIN  municipio muni ON muni.idMunicipio = dir.Municipio_idMunicipio  "+
                                 "INNER JOIN departamento depto ON depto.idDepartamento = muni.Departamento_idDepartamento "+
                                sentencia + " and TipoTelefono_idTipoTel = 1");
           return rs;
     }
 
 ///////////////////////////////////////
      
      
     
          public java.sql.ResultSet verAlumnos2(String sentencia) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT NoCarne,Nombre_estudiante,Apellido_estudiante  FROM estudiante where NoCarne like '"+ sentencia+"%'");
           
            
        return rs;
} 
}
